/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Util;

import Model.Usuario;
import Model.UsuarioEgresso;
import Model.UsuarioExterno;
import Model.UsuarioPetiano;
import Model.UsuarioTutor;
import javax.servlet.http.HttpServletRequest;

/**
 * Classe de utilidades para manipular usuarios dentro do sistema
 * @author Max
 */
public class UtilUsuario {

    /**
     * Metodo que verifica se o usuario está logado
     * @param request servlet request
     * @return true se o usuario está logado, false se não.
     */
    public static UsuarioExterno getUserExternoLoggedIn(HttpServletRequest request){
        UsuarioExterno user = (UsuarioExterno) request.getSession().getAttribute("user");
        return user;
    }

    /**
     * Metodo que verifica se o usuario logado é um UsuarioPetiano
     * @param user Usuarioo a ser avaliado
     * @return true se o usuario logado é um UsuarioPetiano, false se não.
     */
    public static boolean isPetiano(Usuario user){
        return (user instanceof UsuarioPetiano);
    }

    /**
     * Metodo que verifica se o usuario logado é um UsuarioExterno
     * @param  user Usuarioo a ser avaliado
     * @return true se o usuario logado é um UsuarioExterno, false se não.
     */
    public static boolean isExterno(Usuario user){
        return (user instanceof UsuarioExterno);
    }

    /**
     * Metodo que verifica se o usuario logado é um UsuarioEgresso
     * @param  user Usuarioo a ser avaliado
     * @return true se o usuario logado é um UsuarioEgresso, false se não.
     */
    public static boolean isEgresso(Usuario user){
        return (user instanceof UsuarioEgresso);
    }

    /**
     * Metodo que verifica se o usuario logado é um UsuarioTutor
     * @param  user Usuarioo a ser avaliado
     * @return true se o usuario logado é um UsuarioTutor, false se não.
     */
    public static boolean isTutor(Usuario user){
        return (user instanceof UsuarioTutor);
    }

     /**
     * Metodo que verifica se o usuario está com os dados cadastrados corretamente
     * @param  user Usuarioo a ser avaliado
     * @return true se o usuario esta com os dados preenchidos, false se não.
     */
    public static boolean dadosValidos(Usuario user){
        return (user.getDataNascimento() != null);
    }
    
    /**
     * Metodo que verifica se o usuario está logado
     * @param request servlet request
     * @return true se o usuario está logado, false se não.
     */
    public static Usuario getUserLoggedIn(HttpServletRequest request){
        Usuario user = (Usuario) request.getSession().getAttribute("user");
        return user;
    }

}
